package com.kwt.learn.algorithm;

import java.util.HashSet;
import java.util.Set;

/**
 * 在一个长度为 n 的数组 nums 里的所有数字都在 0～n-1 的范围内。数组中某些数字是重复的，但不知道有几个数字重复了，也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。
 * <p>
 * 盲点：
 * 1、数组的长度方法是.length
 * 2、contains 英文写法
 * 3、new 一个int数组  new int[]{1,2,3,4}
 */
public class Solution05 {

    public static int findRepeatNumber(int[] nums) {
        //声明一个set放置数据
        HashSet set = new HashSet();
        for (int i = 0; i < nums.length; i++) {
            //判断是否含有这个值了
            int num = nums[i];
            if (set.contains(num)) {
                return num;
            }
            set.add(num);
        }

        return 0;
    }

    public static int findRepeatNumber1(int[] nums) {
        //声明一个set放置数据
        HashSet set = new HashSet();
        for (int i = 0; i < nums.length; i++) {
            if (!set.add(nums[i])) {
                return nums[i];
            }
        }

        return 0;
    }

    public static void main(String[] args) {
        findRepeatNumber(new int[]{2, 4, 6, 7, 8, 9, 2, 4, 5, 6});
    }
}
